An evolving family of standards is being developed by the Institute of Electrical and Electronic Engineers (IEEE) to define parameters of a point-to-multipoint wireless, packet-switched communications system. In particular, the 802.16 family of standards (e.g., the IEEE std. 802.16-2004 (published Sep. 18, 2004)) may provide for fixed, portable, and/or mobile broadband wireless access networks. Additional information regarding the IEEE 802.16 standard may be found in IEEE Standard for Local and Metropolitan Area Networks—Part 16: Air Interface for Fixed Broadband Wireless Access Systems (published Oct. 1, 2004). See also IEEE 802.16E-2005, IEEE Standard for Local and Metropolitan Area Networks—Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems—Amendment for Physical and Medium Access Control Layers for Combined Fixed and Mobile Operation in Licensed Bands (published Feb. 28, 2006). Further, the Worldwide Interoperability for Microwave Access (WiMAX) Forum facilitates the deployment of broadband wireless networks based on the IEEE 802.16 standards. For convenience, the terms “802.16” and “WiMAX” (WiMAX is a trademark of the WiMAX forum) may be used interchangeably throughout this disclosure to refer to the IEEE 802.16 suite of air interface standards.
Wireless communication between wireless devices may experience data corruption due to random noise and multi-path distortion. A wireless device may encode input data to generate correlated parity data. The transmitting device may transmit the input data and correlated parity data to a device. The receiving device may process the received input data and correlated parity data to determine whether the received input data has been corrupted and to attempt to recover the transmitted input data. Parity data may be generated using convolutional encoding such as Convolutional Turbo Code (CTC).
CTC encoders may employ a circular-recursive-convolutional systematic encoder (CRCSE) to process input data blocks to generate parity data blocks. Some CTC decoders operate more effectively when the CTC encoder initializes the state values of the CRCSE with known (a priori) values prior to processing input data blocks to generate parity data blocks including setting the initial state values to the final state values. To determine a priori state values for a CRCSE a CTC encoder may process an input data block with a CRCSE having its initial state values set to zero. The CTC encoder may determine the a priori CRCSE state values based on the final state values of the CRCSE after processing the entire input data block. The CTC encoder may then process the entire input data block again with the initial CRCSE state values set to the determined a priori values to generate parity data block. Such a CTC encoder may require numerous processing cycles.